package com.xinsoft.entity.po;

import com.xinsoft.common.BaseEntity;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 物料
 * @TableName sys_material
 */
@Data
public class SysMaterial extends BaseEntity implements Serializable {

    /**
     * 物料类型ID
     */
    @NotNull
    private Integer materialTypeId;

    /**
     * 默认仓库ID
     */
    private Integer defaultWhId;

    /**
     * 默认仓位ID
     */
    private Integer defaultWhItemId;

    /**
     * 供应商ID
     */
    private Integer supplierId;

    /**
     * 物料编码
     */
    @NotBlank
    private String materialNo;

    /**
     * 物料名称
     */
    @NotBlank
    private String materialName;

    /**
     * 规格属性
     */
    private String materialSpecific;

    /**
     * 物料属性-字典项
     */
    @NotNull
    private Integer materialAttrId;

    /**
     * 计价方法-1-批次认定 2-加权平均
     */
    @NotNull
    private Integer valuationMethod;

    /**
     * 工艺路线
     */
    private Integer craftId;

    /**
     * 图号
     */
    private String drawingNo;

    /**
     * 是否库存预警
     */
    private Integer doStockWarning;

    /**
     * 安全库存
     */
    private BigDecimal secStockNum;

    /**
     * 最大库存
     */
    private BigDecimal maxStockNum;

    /**
     * 最小库存
     */
    private BigDecimal minStockNum;

    /**
     * 是否进行保质期管理
     */
    private Integer doExpWarning;

    /**
     * 保质期
     */
    private Integer expDays;

    /**
     * 是否进行批次管理
     */
    private Integer doLot;

    /**
     * 计量单位
     */
    @NotNull
    private Integer mainUnit;

    /**
     * 金蝶计量单位
     */
    private String mainUnitKis;

    /**
     * 辅助单位
     */
    private Integer viceUnit;

    /**
     * 金蝶辅助单位
     */
    private String viceUnitKis;

    /**
     * 换算比例
     */
    private String convCoefficient;

    /**
     * 税率
     */
    @NotNull
    private BigDecimal taxRate;

    /**
     * 单件重量
     */
    private BigDecimal everyWeight;

    /**
     * 数量精度-小数位数
     */
    @NotNull
    private Integer numPrecision;

    /**
     * 单价精度-小数位数
     */
    @NotNull
    private Integer pricePrecision;

    /**
     * 销售单价(主单位/含税)
     */
    private BigDecimal taxSaleUnitPrice;

    /**
     * 最低销售单价(主单位/含税)
     */
    private BigDecimal taxMinSaleUnitPrice;

    /**
     * 采购单价(主单位/含税)
     */
    private BigDecimal taxPurchaseUnitPrice;

    /**
     * 备用字段1
     */
    private String byzd1;

    /**
     * 备用字段2
     */
    private String byzd2;

    /**
     * 审核人
     */
    private Integer auditId;

    /**
     * 审核状态 0-未审核 1-已审核
     */
    private Integer auditStatus;

    private static final long serialVersionUID = 1L;
}